/**
 * 创建人:  @author huangpeng
 * 创建时间:  2024年10月13日 21:01
 * 项目名称:  lemon-blog-cloud
 * 文件名称:  RemoteSearchFallbackFactory
 * 文件描述:  @Description: 搜索引擎feign调用熔断降级处理
 * 公司名称:  xxxxxx
 * <p>
 * All rights Reserved, Designed By xxxxxx
 *
 * @Copyright: 2021-2024
 */
package com.lemon.system.api.factory;

import com.lemon.common.core.web.domain.AjaxResult;
import com.lemon.system.api.RemoteSearchService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.cloud.openfeign.FallbackFactory;
import org.springframework.stereotype.Component;

/**
 * 包名称：com.lemon.system.api.factory
 * 类名称：RemoteSearchFallbackFactory
 * 类描述：搜索引擎feign调用熔断降级处理
 * 创建人：@author huangpeng
 * 创建时间：2024年10月13日 21:01
 */
@Component
public class RemoteSearchFallbackFactory implements FallbackFactory<RemoteSearchService>{

    public static final Logger log = LoggerFactory.getLogger(RemoteSearchFallbackFactory.class);

    @Override
    public RemoteSearchService create(Throwable cause) {
        return new RemoteSearchService() {

            @Override
            public AjaxResult initElasticSearchIndex() {
                log.error("远程初始化Elasticsearch索引失败");
                return AjaxResult.error("远程初始化Elasticsearch索引失败: " + cause.getMessage());
            }
        };
    }
}
